其他
iOS 应用内浏览器被用来「监视」你,苹果的隐私被 Instagram「扎」破了吗?
注意:为简单起见,在下文中我们将使用「Instagram」来指代 「Meta」或 「Facebook」。
Instagram 做了什么?
Instagram 通过内置的、经过修改的浏览器,而非 iOS 自带的 Safari 来呈现外部网站的链接。 Instagram 内置的经过修改的浏览器呈现外部网站时,将允许 Instagram 监控外部网站上发生的一切,无需用户或网站提供者的同意。 Instagram 应用程序将他们的追踪代码植入到浏览器中显示的所有的网站中和可点触的广告中,让他们能够监控所有的用户交互行为,例如点击按钮和链接、文本选择、屏幕截图以及任何表单输入的信息,例如密码、地址和信用卡号码等。
会发生什么?
Instagram 真的可以读取我在网上做的任何事吗?不能,只有当你从 Instagram 内部打开链接或者广告时,它才能读取并监视你的在线活动。 Instagram 真的窃取了我的密码,住址,和信用卡密码信息吗?没有,我不能肯定 Instagram 正在追踪的具体是哪类数据,但这篇文章旨在展示他们会在你不知情的情况下追踪你。过去的种种迹象表明,如果一家公司可以以合法、免费且不需要取得用户知情同意的的方式获取数据,那么他们就会对该数据进行追踪。 我该如何保护自己?简单来说就是:无论何时,当你在 Instagram (或者 Facebook/Messenger)内部打开网页链接或者广告时,请确保自己点击右下角的按钮——将该网页在 Safari 中打开。想了解更详细的信息,请继续阅读。 Instagram 这么做是有什么目的吗?我没办法猜到他们内部是怎么想的。我想说的是,构建自己的应用程序内置浏览器要花大量时间去编程和维护,这个时间成本远远大于直接使用过去 7 年以隐私和用户友好著称的 iPhone 自带的浏览器。
Instagram 的主要营收来自于广告
App 跟踪透明度功能会影响广告收入
将在第二年对这些企业产生近 160 亿美元的影响……大部分影响(81%)仍会是 Meta……而按照 81% 的比例计算,Meta 受到的冲击约为 128 亿美元。
苹果公司的 iPhone 警告信息每年会让 Instagram 损失100亿美元。 Facebook 抱怨说,苹果公司的 App 追踪透明度(ATT)利好了那些像谷歌这样的公司,因为这个功能「可以让浏览器从应用跟踪提示中豁免」。 由于反跟踪功能内置于 iOS,所以你在 iOS 上访问的网站不会触发追踪提示。—— Daring Fireball & MacWorld Facebook 用消息轰炸其用户,乞求他们重新将追踪功能打开。它威胁对苹果提起反垄断诉讼。它让小企业为用户追踪的行为辩护,因为当一家巨大的公司监控着数十亿用户时,小公司也得为自己谋求发展之道。—— EFF《Facebook 声称苹果过于强大,但他们是对的》
原作者的声明 我并没有 Instagram 到底收集了哪些数据的精确列表。我只是有证据证明 Instagram 和 Facebook 应用程序在未经用户许可的情况下,主动运行了一个 JavaScript 指令并额外注入了一个JavaScript SDK,用于跟踪用户的文本选择。Instagram 已经这么做了,他们还完全可以再植入其他的任意 JavaScript 代码。此外,Instagram 应用程序本身可以很好地防止中间人攻击,只有通过修改他们的 Android 安装包文件来去除证书锁定并且在模拟器中运行才可能进行中间人攻击。
隐私 & 分析:主应用程序能够追踪网站上的几乎所有动态,包括每一次点触、输入、滑动的行为、复制粘贴的内容,以及类似于在线购买的信息。 窃取用户凭证:物理地址,API 密钥等。 广告 & 推荐码:主应用程序可以向这些网站植入广告,或者替换广告的 API 密钥以窃取营收,又或者是在所有 URL 中加入你的推荐码,而这种情况以前发生过。 安全:浏览器行业已经花了许多年去优化网络用户的安全,比如向用户显示 HTTPS 的加密状态,警告用户网站是可疑网站或者网站本身未加密等等。 向第三方网站植入额外的 JavaScript 代码可能会导致额外的问题和故障,也会有风险导致网站崩溃。 用户无法使用浏览器扩展程序和内容拦截器。 深度链接 (Deep linking)在大多数情况下不能起效。 无法使用如 Email、AirDrop 等方法将该链接分享到其他平台。
避开 app 内的网页视图
使用网页版
<span id="iab-autofill-sdk"></span>
document.addEventListener = function(a, b) {
if (b.toString().indexOf("messageHandlers.fb_getSelection") > -1) {
return null;
}
return originalEventListener.apply(this, arguments);
}
对于苹果
用户透明度和控制 (User Transparency and Control): 确保用户知道何种数据会被共享,以及数据会被怎样使用,让用户对其可以进行掌控。 —— 苹果隐私PDF
避免使用 Web 视图来构建网络浏览器。使用 Web 视图让人们在不离开你的 app 的情形下短暂的进入另一个网页是可以的,但 Safari 仍是人们浏览网页的首要选择。尝试在你的 app 当中复制 Safari 的功能是不必要且不被鼓励的。 —— Apple 人机界面准则 (Apple Human Interface Guidelines)
如果你的应用程序允许用户查看其他网站的内容,请使 SFSafariViewController 控件。如果你的应用程序要自定义、交互或者控制网页内容的显示时,才应该使用 WKWebView 类。 —— Apple SFSafariViewController 文档
如果社交类软件想要他们的用户拥有更好的隐私体验,他们有两条路可走: 在 app 内置浏览器中使用 SafariViewController 而不是 WKWebView。SafariViewController 通过在社交类软件的进程以外的空间加载页面,以此来保护用户的数据免受应用程序的侵害。SocialApp 可以因此确保在使用SafariViewController 时可以为其用户提供最佳的用户隐私体验。 选择 App 绑定域。额外增加了 App 绑定域的WKWebView控件将被限制,以确保社交类软件无法使用上述 API 跟踪用户。
需要一个额外的审查来确保,这些例外是确有其事需要这样使用的 让用户确认这些额外的权限 第一方网站或内容仍然可以通过使用 WKWebView 控件显示,因为 WKWebView 控件通常被用于 UI 元素,或者该应用修改了他们的第一方内容 (例如自动关闭它们自己的 cookie 横幅)。